package com.example.homework;

public class HomeWork05 {
    public static void main(String[] args) {
        // 需求:
        // 现有一个整数数组{100,50,90,60,80,70}。
        // 请编写程序，计算去掉最大值和最小值后的平均值（不考虑小数部分）
        /*
        思路分析
        1.先找出最大值和最小值
        2.在计算平均值之前，先减去最大值和最小值
         */
        int[] array = {100, 50, 90, 60, 80, 70};
        System.out.println(getAverage(array));
    }

    /**
     * 计算并返回数组中整数的平均值，排除最高和最低值
     * 这个方法的目的是为了提高平均值计算的准确性，避免极端值带来的影响
     *
     * @param array 包含整数的数组，数组长度至少为3
     * @return 数组中整数的平均值，不包括最高和最低值
     */
    public static int getAverage(int[] array) {
        // 初始化总和变量
        int sum = 0;
        // 假设数组第一个元素为最大值
        int max = array[0];
        // 假设数组第一个元素为最小值
        int min = array[0];

        // 遍历数组，计算总和并更新最大最小值
        for (int i = 0; i < array.length; i++) {
            sum += array[i];

            // 如果当前元素小于最大值，则更新最大值
            if (max > array[i]) {
                max = array[i];
            }

            // 如果当前元素大于最小值，则更新最小值
            if (min < array[i]) {
                min = array[i];
            }
        }

        // 返回排除最高和最低值后的平均值
        return (sum - max - min) / (array.length - 2);
    }
}
